package com.kygeng.springframework.beans.factory;

import com.kygeng.springframework.beans.BeansException;

import java.util.Map;

/**
 * @Title: ListableBeanFactory
 * @Author: kygeng
 * @Package: com.kygeng.springframework.beans
 * @Date: 2024/7/22 9:41
 * @Description: 获取容器内Bean的定义信息
 */
public interface ListableBeanFactory extends BeanFactory {

    /**
     * 返回指定类型的所有实例
     *
     * @param type
     * @param <T>
     * @return
     */
    <T> Map<String, T> getBeansOfType(Class<T> type) throws BeansException;

    /**
     * 返回注册表中定义的所有bean的名称
     *
     * @return
     */
    String[] getBeanDefinitionNames();

}
